#ifndef __MEM_INNER_H_
#define __MEM_INNER_H_

#ifdef __cplusplus
extern "C"
{
#endif

#include "system.h"


typedef struct
{
    const char *name;
    void *(*func_init)(void *obj, void *, void *);
    
    void (*func_free)(void *obj, void *);
    void *(*func_malloc)(void *obj, size_t);
    void *(*func_realloc)(void *obj, void *, size_t);
    void (*func_get_info)(void *obj, uint32_t *total, uint32_t *used, uint32_t *used_max);

} _mem_sal_opt;

/* inner func */

_mem_sal_opt *mem_get_opt(void);

void mem_lock(void);
void mem_unlock(void);


#ifdef __cplusplus
}
#endif

#endif // __MEM_INNER_H_
